/*
 * @lc app=leetcode.cn id=242 lang=java
 *
 * [242] 有效的字母异位词
 */

// @lc code=start
class Solution {
    public boolean isAnagram(String s, String t) {
        // int[] record=new int[26];
        // for(char c:s.toCharArray()){
        //     record[c-'a']++;
        // }
        // for(char c:t.toCharArray()){
        //     record[c-'a']--;
        // }
        // for(int i:record){
        //     if(i!=0){
        //         return false;
        //     }
        // }
        // return true;
        //进阶，由于Unicode字符是离散未知的，因此采用hashmap统计即可
        if(s.length()!=t.length()){
            return false;
        }
        Map<Character,Integer> map=new HashMap<>();
        for(char c:s.toCharArray()){
            map.put(c,map.getOrDefault(c,0)+1);
        }
        for(char c:t.toCharArray()){
            map.put(c,map.getOrDefault(c,0)-1);
            if(map.get(c)<0){
                return false;
            }
        }
        return true;
    }
}
// @lc code=end

